home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
amos
/
amosl0794.lzh
/
AMOSLIST
/
000013_amos-request@svcs1.digex.net_Tue Jul 5 23:04:40 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-08-01
|
5KB
Received: from hela.INS.CWRU.Edu by nfs1.digex.net with SMTP id AA16115
(5.67b8/IDA-1.5 for <mcox@access.digex.net>); Tue, 5 Jul 1994 23:04:36 -0400
Received: from svcs1.digex.net (svcs1.digex.net [164.109.10.23]) by hela.INS.CWRU.Edu with SMTP (8.6.8.1+cwru/CWRU-2.1-freenet-gw)
id XAA18222; Tue, 5 Jul 1994 23:04:30 -0400 (from amos-request@svcs1.digex.net)
Received: by svcs1.digex.net id AA12185
(5.67b8/IDA-1.5 for amos-out); Tue, 5 Jul 1994 19:28:47 -0400
Received: from nfs1.digex.net by svcs1.digex.net with SMTP id AA12181
(5.67b8/IDA-1.5 for <amos@svcs1.digex.net>); Tue, 5 Jul 1994 19:28:44 -0400
Received: from CCVAX.FULLERTON.EDU (csu.Fullerton.EDU) by nfs1.digex.net with SMTP id AA04064
(5.67b8/IDA-1.5 for <amos-list@access.digex.net>); Tue, 5 Jul 1994 19:28:40 -0400
Received: from FULLERTON.EDU by FULLERTON.EDU (PMDF #2446 ) id
<01HECQPVH35C00DI6L@FULLERTON.EDU>; Tue, 5 Jul 1994 16:25:21 PST
Date: 05 Jul 1994 16:25:21 -0800 (PST)
From: XRACTON@CCVAX.FULLERTON.EDU
Subject: Re: ACE
To: amos-list@access.digex.net
Message-Id: <01HECQPVIFDU00DI6L@FULLERTON.EDU>
X-Vms-To: IN%"amos-list@access.digex.net"
Mime-Version: 1.0
Content-Transfer-Encoding: 7BIT
Status: RO
Kimmo just posted a message to the list about ACE. ACE is
essentially a souped-up version of Amiga Basic. It doesn't have any
of the extras (like AMAL) that Amos has. However, it's extremely
stable, the author has an Internet address, and he usually fixes any
bugs as soon as they're reported. The only real problem with it is
that the compiler's kind of a memory hog, and you may have trouble
compiling/assembling any source code larger than 150K.
When I released my own compiler (not a Basic compiler) a few
months back, I compared it to what other languages I had around. I
thought you might be interested in seeing the results of those
tests. Amos didn't do so good... :)
The reason for the huge time difference between Struct/C and
ACE/Amos is that neither of the two Basics use register variables.
Assembly language programmers know how important this is.
I used the Creator version of Amos.
SAS C 6.2 is a commercial C compiler, published by SAS Institute.
The included assembler and linker were used. The optimization flag
was not used because the optimizer kept throwing the test code away.
(But, looking at the assembly code, I doubt it would have made much
difference)
Struct is a copyrighted but freely redistributable compiler,
written by Roland Acton. The PhxAss optimizing assembler and PhxLnk
linker, included with Struct, were used.
AMOS is a commercial BASIC interpreter, written by Francois Lionet
and published by Europress software. The AMOS compiler was used, and
the numbers given are for the compiled versions of the speed tests.
ACE is a freeware BASIC compiler, written by David Benn. The A68k
assembler and Blink linker, included with ACE, were used.
The tests were performed on an Amiga 500 with 1 MB chip and 2 MB
fast, running Kickstart 1.3.
Results (numbers represent seconds):
C Struct AMOS ACE
--------------------------------------------------
Test 1 114 107 662 504
Test 2 230 109 1694 1200
Test 3 441 107 2313 866
Test 4 119 119 1115 660
Test 5 114 114 887 571
Test 6 116 95 660 504
Test 7 130 107 709 538
Test 8 121 76 622 442
The tests themselves were quite trivial and focused on loop
structures, comparisons, and simple mathematics. They are not
sufficiently general to be called true benchmarks. The tested
operations, however, are important parts of all useful programs.
TEST 1 was a For/Next loop.
TEST 2 used the Zeroloop construct, unique to Struct. For/Next
loops with negative steps were used in the other languages.
TEST 3 was to acquire the remainder from a division and use it in
an If/Then. This was surrounded by a For/Next loop.
TEST 4 was a Repeat/Until loop. Do/While was substituted in C.
TEST 5 was a While/Wend loop.
TEST 6 was a Loop/End Loop construct. For/Next was substituted in
the other languages.
TEST 7 was a test of literal concatenation. An If/Then, with the
condition containing numeric literals added to a variable, was
surrounded with a For/Next loop.
TEST 8 was to access memory. A Byte Peek with a computed memory
address was surrounded by For/Next loops. The memory reference
operator with char casting was used in C. Peek was used in AMOS and
ACE.